#! /bin/bash

#找出docker-compose.yml 文件中的 镜像名称
grep -ai 'image' docker-compose.yml| awk '{ gsub (" ", "", $0);sub(/:/,"|");sub(/\r$/,""); print}' > tmp.1.txt
#查询所有容器的镜像名称和ID
docker ps -a --format "table {{.Image}}|{{.ID}}"|grep -v ID > tmp.2.txt
#通过上面两个临时文件，找出docker-compose.yml 文件中的镜像名称对应的容器ID
awk -F'|' 'NR==FNR{Z[$2]=$2}NR>FNR{if(Z[$1]!=""){print Z[$1]","$2}}' tmp.1.txt tmp.2.txt|awk -F',' '{print $2}' > result.1.txt
#根据ID停止容器
docker stop $(cat result.1.txt)
#根据ID删除容器
docker rm $(cat result.1.txt)

#找出所有镜像名称
docker images|grep -v IMAGE|awk '{print $1"|"$3}' > tmp.3.txt
#通过两个临时文件找出docker-compose.yml 文件中的镜像名称对应的镜像ID
awk -F'|' 'NR==FNR{a[$2]=$0}NR>FNR&&a[b=$1]{print $0, a[b]}' tmp.1.txt tmp.3.txt|awk -F'|' '{print $2}'|awk '{print $1}' > result.2.txt
#根据ID删除镜像
docker rmi $(cat result.2.txt)

#删除所有使用的临时文件
rm -rf result.2.txt result.1.txt tmp.3.txt tmp.2.txt tmp.1.txt